package org.eden.heartbeat.api.jmx;

/**
 * The MBean service interface that handles the application lifecycle.
 *
 * @author trsimoes
 * @version $Revision:$
 */
public interface HeartbeatCoreMBean {

    /**
     * Gets the application name.
     *
     * @return the application name.
     */
    public String getName();

    /**
     * Starts the application via JMX command.
     */
    public void start();

    /**
     * Stops the application via JMX command.
     */
    public void stop();

    /**
     * Reloads the application configuration via JMX command.
     */
    public void reload();

    /**
     * Verifies if the application is running or not.
     *
     * @return {@code true} if the application is running, otherwise {@code false}.
     */
    public boolean isRunning();
}